<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <h2>一、前言</h2>
  <div>对于文本的溢出，我们可以分成两种形式：</div>
  <ul>
    <li>单行文本溢出</li>
    <li>多行文本溢出</li>
  </ul>
  <h2>二、实现方式</h2>
  <h4>单行文本溢出省略</h4>
  <ul>
    <li>text-overflow：hidden;规定当文本溢出时，显示省略符号来代表被修剪的文本。clip：当对象内文本溢出部分裁切掉。ellipsis：当对象内文本溢出时显示省略标记（...）</li>
    <li>white-space：nowrap;设置文字在一行显示，不能换行</li>
    <li>overflow：ellipsis;文字长度超出限定宽度，则隐藏超出的内容</li>
  </ul>
  <br>
  <h4>多行文本溢出省略</h4>
  <div>多行文本溢出的时候，我们可以分为两种情况：</div>
  <ul>
    <li>基于高度截断</li>
    <li>基于行数截断</li>
  </ul>
  <!-- <style>
    /* position: relative：为伪元素绝对定位
    overflow: hidden：文本溢出限定的宽度就隐藏内容）
    position: absolute：给省略号绝对定位
    line-height: 20px：结合元素高度,高度固定的情况下,设定行高, 控制显示行数
    height: 40px：设定当前元素高度
    ::after {} ：设置省略号样式 */
    .demo {
        position: relative;
        line-height: 20px;
        height: 40px;
        overflow: hidden;
    }
    .demo::after {
        content: "...";
        position: absolute;
        bottom: 0;
        right: 0;
        padding: 0 20px 0 10px;
    }
  </style>
  <div class='demo'>这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本这是一段很长的文本</div> -->

  <div>一般文本存在英文的时候，可以设置word-break: break-all使一个单词能够在换行时进行拆分</div>
  <br>
  <div>如果文本为一段很长的英文或者数字，则需要添加word-wrap: break-word属性</div>

  <br>
  <div>基于行数截断</div>
  <ul>
    <li>-webkit-line-clamp: 2：用来限制在一个块元素显示的文本的行数，为了实现该效果，它需要组合其他的WebKit属性）</li>
    <li>display: -webkit-box：和1结合使用，将对象作为弹性伸缩盒子模型显示</li>
    <li>-webkit-box-orient: vertical：和1结合使用 ，设置或检索伸缩盒对象的子元素的排列方式</li>
    <li>overflow: hidden：文本溢出限定的宽度就隐藏内容</li>
    <li>text-overflow: ellipsis：多行文本的情况下，用省略号“…”隐藏溢出范围的文本</li>
  </ul>
  <style>
    p {
        width: 400px;
        border-radius: 1px solid red;
        -webkit-line-clamp: 2;
        display: -webkit-box;
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
    }
    </style>
    <p>
        这是一些文本这是一些文本这是一些文本这是一些文本这是一些文本
        这是一些文本这是一些文本这是一些文本这是一些文本这是一些文本
    </p>

</body>
</html>